<?php
class EvaluadoresDAO extends CI_Model {


	public function create(EvaluadoresVO $evaluadores){

		$insert = array ('titulo_evaluacion' 		=> 	$evaluadores->nombreevaluacion,
						 'fecha_evaluacion' 		=> 	$evaluadores->fechaevaluacion,
						 'fecha_caducidad'			=>	$evaluadores->fechacaducidad,
						 'id_cargo_evaluador'		=>	$evaluadores->cargoevaluador,
						 'id_cargo_a_evaluar'		=>	$evaluadores->cargoaevaluar);
		
		try {
			$result = $this -> db -> insert('evaluacion', $insert);
		} catch (Exception $e) {
			return false;
		}

		return true;

	}
	
	public function update(EvaluadoresVO $evaluadores){
	
		$update = array ('fecha_evaluacion'  => $evaluadores->fechaevaluacion,
						 'fecha_caducidad'	 =>	$evaluadores->fechacaducidad,
						 'id_cargo_evaluador'=>	$evaluadores->cargoevaluador,
						 'id_cargo_a_evaluar'=>	$evaluadores->cargoaevaluar);
		$this -> db -> where('id_evaluacion', $evaluadores->idevaluacion);
	
		try {
			$result = $this -> db -> update('evaluacion', $update);
		} catch (Exception $e) {
			return false;
		}
	
		return true;
	
	}
	
	public function search(){
	
		$this -> db -> select('id_evaluacion, titulo_evaluacion, fecha_evaluacion, fecha_caducidad, id_cargo_evaluador, id_cargo_a_evaluar');
		$this -> db -> from('evaluacion');
	
		try {
			$result = $this -> db -> get();
		} catch (Exception $e) {
			$this->form_validation->set_message('search', '');
			return false;
		}
	
		if($result -> num_rows() > 0)
		{
			return $result;
		}
		else
		{
			return false;
		}
	}
	
	public function findById($id_evaluacion){
		$this->load->model('vo/EvaluadoresVO');
	
		$this -> db -> select('id_evaluacion, titulo_evaluacion, fecha_evaluacion, fecha_caducidad, id_cargo_evaluador, id_cargo_a_evaluar');
		$this -> db -> from('evaluacion');
		$this -> db -> where('id_evaluacion', $id_evaluacion);
	
		$evaluadoresVO = new EvaluadoresVO();
	
		try {
			$evaluacion = $this -> db -> get();
				
			foreach ($evaluacion->result() as $eval){
				$evaluadoresVO->idevaluacion 	= $eval->id_evaluacion;
				$evaluadoresVO->nombreevaluacion= $eval->titulo_evaluacion;
				$evaluadoresVO->fechaevaluacion = $eval->fecha_evaluacion;
				$evaluadoresVO->fechacaducidad 	= $eval->fecha_caducidad;
				$evaluadoresVO->cargoevaluador	= $eval->id_cargo_evaluador;
				$evaluadoresVO->cargoaevaluar	= $eval->id_cargo_a_evaluar;
			}
			return $evaluadoresVO;
				
		} catch (Exception $e) {
			$this->form_validation->set_message('findById', '');
			return false;
		}
	}
	
	//
	public function findChargesByChargeId($id){
		$this -> db -> select('id_cargo_evaluado');
		$this -> db -> from('evaluador_asignados');
		$this -> db -> where('id_cargo_evaluador', $id);
		
		try {
			$result = $this -> db -> get();
		} catch (Exception $e) {
			$this->form_validation->set_message('findChargesByChargeId', '');
			return false;
		}
		
		if($result -> num_rows() > 0)
		{
			return $result;
		}
		else
		{
			return false;
		}
	}
			
}